#ifndef __3CIRCULAR_QUEUE__
#define __3CIRCULAR_QUEUE__
#include "head.h"
#define QUEUE_CAPACITY 30 //队列大小 也是循环时间大小
#define NETFD 1024
//每个客户端节点的信息
typedef struct clientNode_s {
    //int isLive;
    int client_fd;  //客户端的fd
    time_t last_time;//上次活跃时间包括登陆时间和操作时间
    struct clientNode_s *next;
}clientNode_t;

//虚伪的循环数组队列
typedef struct circular_queue_s{
    clientNode_t *slot[QUEUE_CAPACITY];//存储客户端信息的数组
    int current_slot; //记录当前槽位 即环形队列数组下标
    int fdbuf[NETFD];
    int count;   //当前元素个数,也是客户端总数
}circular_queue_t;

int circularQueueInit(circular_queue_t *cirQueue);  //队列初始化
int addClient(circular_queue_t *cirQueue ,int client_fd);//入队
void tick(circular_queue_t *cirQueue);//模拟时钟滴答
int superCheck(circular_queue_t *cirQueue);
//int printQueue(circular_queue_t *cirQueue);   //打印队列 测试用

#endif
